home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 33
/
Aminet 33 - October 1999.iso
/
Aminet
/
hard
/
hack
/
hddmem_exp_a50.lha
/
hddmem_exp_a500
/
Pld
/
HM010.PDS
< prev
next >
Wrap
Text File
|
1998-11-03
|
49KB
|
2,804 lines
TITLE A500 Memory and HDD Controller
PATTERN 1
REVISION 1.6
AUTHOR Vladimir Sobolev
COMPANY Vladimir Sobolev corp.
DATE 02/11/98
CHIP Dream_Expander nfx740_68
; Inputs
pin 53 cdac ; SYNCHRONOUS CLOCK 7Mhz
pin 19 cpuclk
pin 2 a18
pin 3 a17
pin 4 a16
pin 43 ior
pin 44 iow
pin 7 cs1
pin 8 cs0
pin 9 irq
pin 11 cas3
pin 12 cas2
pin 13 cas1
pin 14 cas0
pin 15 a15
pin 16 a14
pin 56 ovr open_drain ; 22 b0 m0
pin 23 int2 open_drain
pin 24 ras1
pin 25 ras0
;pin 26 we
pin 27 adr_sw
pin 57 rom_oe ; 57 b3 m1
pin 29 reset
pin 30 d14 open_drain
pin 31 d15
pin 36 a23
pin 37 a22
pin 38 a21
pin 40 a13
pin 41 a12
pin 42 a3
pin 49 a20
pin 50 a19
pin 60 sys_rst
pin 61 dtack open_drain ; 61 b3 m5
pin 62 rd_wr
pin 63 as
pin 64 uds
pin 65 lds ; 65
pin 58 regclk
pin 22 casreg ; 59 b3 m3
node rasreg regfbk ; 65 b3 m9
node rascpu regfbk ; 56 b3 m0
node 28 cascpu regfbk ; 28 b0 m6
node 6 da8000 regfbk ; 6 b1 m8
node 48 da9000_r cmbfbk ; 48 b2 m0
node 29 da9000 regfbk ; 29 b0 m7
node 5 daa000 regfbk ; 5 b1 m9
node 45 f8_wr_en regfbk ; 45 b2 m3
node 42 f8_mem_en regfbk ; 42 b2 m6
node 41 c0_mem_en regfbk ; 41 b2 m7
node 47 hdd_dis regfbk ; 47 b2 m1
node 40 mem_dis regfbk ; 40 b2 m8
node 39 id_dis regfbk ; 39 b2 m9
node 46 con_dis regfbk ; 46 b2 m2
node 9 da9sel cmbfbk ; 9 b1 m5
node 10 d15_oe cmbfbk ; 10 b1 m4
node 26 b8sel cmbfbk ; 26 b0 m4
node d15p cmbfbk ; 63 b3 m7
node idst2 regfbk ; 64 b3 m8
node idst1 regfbk ; 60 b3 m4
node idst0 regfbk ; 58 b3 m2
node rst_x regfbk
;node ovl
STATE
MOORE_MACHINE
DEFAULT_BRANCH st0
st0 = /idst2 * /idst1 * /idst0
st1 = /idst2 * /idst1 * idst0
st2 = /idst2 * idst1 * /idst0
st3 = /idst2 * idst1 * idst0
st4 = idst2 * /idst1 * /idst0
st5 = idst2 * /idst1 * idst0
st6 = idst2 * idst1 * /idst0
st7 = idst2 * idst1 * idst0
; state after reset
st0 := a3 -> st0
+ /a3 -> st1
; state after first r/w $dexxxx with a3=0
st1 := rd_wr -> st1
+ /rd_wr -> st2
; state after two write to $dexxxx 1
st2 := rd_wr * /id_dis -> st3
+ rd_wr * id_dis -> st6
+ /rd_wr -> st2
; state after first read $dexxxx with id_dis=0 1
st3 := rd_wr -> st4
+ /rd_wr -> st2
; state after two read $dexxxx with id_dis=0 0
st4 := rd_wr -> st5
+ /rd_wr -> st2
; state after three read $dexxxx with id_dis=0 1
st5 := rd_wr -> st5
+ /rd_wr -> st2
; state after first read $dexxxx with id_dis=1
st6 := rd_wr -> st7
+ /rd_wr -> st2
; state after two read $dexxxx with id_dis=1
st7 := rd_wr -> st0
+ /rd_wr -> st2
EQUATIONS
idst[0:2].aclk = /(/as * a23 *a22 * /a21 * a20 * a19 * a18 * a17 * /a16)
idst[0:2].rstf = /reset
idst[0:2].trst = gnd
b8sel = /as * a23 * /a22 * a21 * a20 * a19 * /a18 * /a17 * /a16
b8sel.trst = gnd
; open_drain pin
int2 = /da9000
; ovl.d:= gnd
; ovl.clkf = cdac
; ovl.rstf = /reset
rst_x := /reset ; ____|~<reset~~~~~~~~~~~~~|_<fxxxxx_call____
+ reset * rst_x * as
+ reset * rst_x * /a23
+ reset * rst_x * /a22
+ reset * rst_x * /a21
+ reset * rst_x * /a20
rst_x.clkf = cdac
rst_x.rstf = gnd
rst_x.setf = gnd
rst_x.trst = gnd
rom_oe = /((/rst_x * /f8_mem_en * /as * rd_wr * a23 * a22 * a21 * a20 * a19)
+ rst_x)
rom_oe.trst = vcc
; open_drain pin
ovr = /(/as * /a23 * /a22 * a21 ; 20-3f
+ /as * /a23 * a22 * /a21 ; 40-5f
+ /as * /a23 * a22 * a21 ; 60-7f
+ /as * a23 * /a22 * /a21 ; 80-9f
+ /as * a23 * a22 * /a21 * /a20 ; c0-cf
+ /as * a23 * a22 * /a21 * a20 * /a19 ; d0-d7
+ /as * a23 * /a22 * a21 * a20 * a19 * /a18 * /a17 * /a16 ; b8
+ /as * a23 * a22 * /a21 * a20 * a19 * /a18 * a17 * /a16 ; da
+ /as * a23 * a22 * /a21 * a20 * a19 * a18 * a17 * /a16 ; de
+ /as * a23 * a22 * a21 * a20 * a19 * f8_mem_en) ; f8-ff
; open_drain pin
dtack = /(/as * /a23 * /a22 * a21 ; 20-3f
+ /as * /a23 * a22 * /a21 ; 40-5f
+ /as * /a23 * a22 * a21 ; 60-7f
+ /as * a23 * /a22 * /a21 ; 80-9f
+ /as * a23 * a22 * /a21 * /a20 ; c0-cf
+ /as * a23 * a22 * /a21 * a20 * /a19 ; d0-d7
+ /as * a23 * /a22 * a21 * a20 * a19 * /a18 * /a17 * /a16 ; b8
+ /as * a23 * a22 * /a21 * a20 * a19 * /a18 * a17 * /a16 ; da
+ /as * a23 * a22 * /a21 * a20 * a19 * a18 * a17 * /a16 ; de
+ /as * a23 * a22 * a21 * a20 * a19 * f8_mem_en) ; f8-ff
; this pin connect with external counter reset pin
casreg.d := regclk * as
casreg.clkf = /cdac
casreg.trst = vcc
rasreg.d := casreg
rasreg.clkf = cdac
rasreg.trst = gnd
rascpu.d := /mem_dis * /as * /a23 * /a22 * a21 ; 20-3f
+ /mem_dis * /as * /a23 * a22 * /a21 ; 40-5f
+ /mem_dis * /as * /a23 * a22 * a21 ; 60-7f
+ /mem_dis * /c0_mem_en * /as * a23 * /a22 * /a21 * /a20 ; 80-8f
+ /mem_dis * /c0_mem_en * /as * a23 * /a22 * /a21 * a20 * /a19 ; 90-97
+ /mem_dis * /f8_mem_en * /as * a23 * /a22 * /a21 * a20 * a19 ; 98-9f
+ /mem_dis * c0_mem_en * /as * a23 * a22 * /a21 * /a20 ; c0-cf
+ /mem_dis * c0_mem_en * /as * a23 * a22 * /a21 * a20 * /a19 ; d0-d7
+ f8_mem_en * rd_wr * /as * a23 * a22 * a21 * a20 * a19 ; f8-ff
+ f8_mem_en * /rd_wr * f8_wr_en * /as * a23 * a22 * a21 * a20 * a19 ; f8-ff
rascpu.clkf = /cdac
rascpu.rstf = as
rascpu.trst = gnd
cascpu.d := rascpu
cascpu.clkf = /cdac
cascpu.rstf = as
cascpu.trst = gnd
ras1 = /(rascpu * /a23 * a22 * a21 ; 60-7f
+ rascpu * a23 * /a22 * /a21 ; 80-9f
+ rascpu * a23 * a22 * /a21 * /a20 ; c0-cf
+ rascpu * a23 * a22 * /a21 * a20 * /a19 ; d0-d7
+ rascpu * a23 * a22 * a21 * a20 * a19 ; f8-ff
+ rasreg)
ras1.trst = vcc
ras0 = /(rascpu * /a23 * /a22 * a21 ; 20-3f
+ rascpu * /a23 * a22 * /a21 ; 40-5f
+ rasreg)
ras0.trst = vcc
cas3 = /(cascpu * /uds * /a23 * a22 * /a21 ; 40-5f
+ cascpu * /uds * a23 * /a22 * /a21 ; 80-9f
+ cascpu * /uds * a23 * a22 * /a21 * /a20 ; c0-cf
+ cascpu * /uds * a23 * a22 * /a21 * a20 * /a19 ; d0-d7
+ cascpu * /uds * a23 * a22 * a21 * a20 * a19 ; f8-ff
+ casreg)
cas3.trst = vcc
cas2 = /(cascpu * /lds * /a23 * a22 * /a21 ; 40-5f
+ cascpu * /lds * a23 * /a22 * /a21 ; 80-9f
+ cascpu * /lds * a23 * a22 * /a21 * /a20 ; c0-cf
+ cascpu * /lds * a23 * a22 * /a21 * a20 * /a19 ; d0-d7
+ cascpu * /lds * a23 * a22 * a21 * a20 * a19 ; f8-ff
+ casreg)
cas2.trst = vcc
cas1 = /(cascpu * /uds * /a23 * /a22 * a21 ; 20-3f
+ cascpu * /uds * /a23 * a22 * a21 ; 60-7f
+ casreg)
cas1.trst = vcc
cas0 = /(cascpu * /lds * /a23 * /a22 * a21 ; 20-3f
+ cascpu * /lds * /a23 * a22 * a21 ; 60-7f
+ casreg)
cas0.trst = vcc
adr_sw.d := /rascpu
adr_sw.clkf = cdac
adr_sw.setf = as
adr_sw.trst = vcc
; we = /(rascpu * /rd_wr)
; we.trst = vcc
cs1.d := /(/hdd_dis * /as * a23 * a22 * /a21 * a20 * a19 * /a18 * a17 * /a16
* /a15 * /a14 * a12)
cs1.clkf = cdac
cs1.trst = vcc
cs0.d := /(/hdd_dis * /as * a23 * a22 * /a21 * a20 * a19 * /a18 * a17 * /a16
* /a15 * /a14 * /a12)
cs0.clkf = cdac
cs0.trst = vcc
ior = /((rd_wr * /cs1 * /uds)
+ (rd_wr * /cs1 * /lds)
+ (rd_wr * /cs0 * /uds)
+ (rd_wr * /cs0 * /lds))
ior.trst = vcc
iow = /((/rd_wr * /cs1 * /uds)
+ (/rd_wr * /cs1 * /lds)
+ (/rd_wr * /cs0 * /uds)
+ (/rd_wr * /cs0 * /lds))
iow.trst = vcc
d15_oe = ((/hdd_dis * /as * rd_wr * a23 * a22 * /a21 * a20
* a19 * /a18 * a17 * /a16 * a15 * /a14 * /a13) ; da8-da9
+ (/hdd_dis * /as * rd_wr * a23 * a22 * /a21 * a20
* a19 * /a18 * a17 * /a16 * a15 * /a14 * a13 * /a12) ; daa
+ (/con_dis * /as * rd_wr * a23 * a22 * /a21 * a20
* a19 * a18 * a17 * /a16) ; de
+ (/con_dis * /as * rd_wr * a23 * /a22 * a21 * a20
* a19 * /a18 * /a17 * /a16)) ; b8
d15_oe.trst = gnd
d15 = a18 * a17 * /idst2 ; de
+ /a18 * a17 * /a13 * /a12 * /da8000 * irq ; da
+ /a18 * a17 * /a13 * /a12 * da8000 ; da
+ /a18 * a17 * /a13 * a12 * da9000 ; da
+ /a18 * a17 * a13 * /a12 * daa000 ; da
+ d15p
d15.trst = d15_oe
d15p = a18 * a17 * idst2 * /idst1 * idst0 ; de
+ /a18 * /a17 * /idst2 * /idst1 * /idst0 * f8_wr_en ; b8
+ /a18 * /a17 * /idst2 * /idst1 * idst0 * con_dis ; b8
+ /a18 * /a17 * /idst2 * idst1 * /idst0 * id_dis ; b8
+ /a18 * /a17 * /idst2 * idst1 * idst0 * hdd_dis ; b8
+ /a18 * /a17 * idst2 * /idst1 * /idst0 * mem_dis ; b8
+ /a18 * /a17 * idst2 * idst1 * /idst0 * c0_mem_en ; b8
+ /a18 * /a17 * idst2 * idst1 * idst0 * f8_mem_en ; b8
d15p.trst = gnd
da9sel = /hdd_dis * /as * a23 * a22 * /a21 * a20
* a19 * /a18 * a17 * /a16
* a15 * /a14 * /a13 * a12 ; da
da9sel.trst = gnd
; open_drain pin
d14 = /(da9sel * rd_wr)
da8000.d := /a13 * /a12 * d15.io
+ /a13 * a12 * da8000
+ a13 * da8000
da8000.aclk = /(/hdd_dis * /as * /rd_wr * a23 * a22 * /a21 * a20
* a19 * /a18 * a17 * /a16 * a15 * /a14)
da8000.trst = gnd
da9000_r = (da9sel * /rd_wr * /uds * /d15.io) + /reset + hdd_dis
da9000_r.trst = gnd
da9000.d := /da8000
da9000.aclk = irq
da9000.rstf = da9000_r
da9000.trst = gnd
daa000.d := /a13 * daa000
+ a13 * /a12 * d15.io
+ a13 * a12 * daa000
daa000.aclk = /(/hdd_dis * /as * /rd_wr * a23 * a22 * /a21 * a20
* a19 * /a18 * a17 * /a16 * a15 * /a14)
daa000.trst = gnd
; register f8_wr_en (st = 0)
f8_wr_en.d := /rd_wr * d14.io * /idst2 * /idst1 * /idst0 * /con_dis * d15.io
+ rd_wr * f8_wr_en
+ con_dis * f8_wr_en
+ /d14.io * f8_wr_en
+ idst2 * f8_wr_en
+ idst1 * f8_wr_en
+ idst0 * f8_wr_en
f8_wr_en.aclk = /b8sel
f8_wr_en.rstf = /sys_rst
f8_wr_en.trst = gnd
; register f8_mem_en (st = 7)
f8_mem_en.d := /rd_wr * d14.io * idst2 * idst1 * idst0 * /con_dis * d15.io
+ rd_wr * f8_mem_en
+ con_dis * f8_mem_en
+ /d14.io * f8_mem_en
+ /idst2 * f8_mem_en
+ /idst1 * f8_mem_en
+ /idst0 * f8_mem_en
f8_mem_en.aclk = /b8sel
f8_mem_en.rstf = /sys_rst
f8_mem_en.trst = gnd
; register c0_mem_en (st = 6)
c0_mem_en.d := /rd_wr * d14.io * idst2 * idst1 * /idst0 * /con_dis * d15.io
+ rd_wr * c0_mem_en
+ con_dis * c0_mem_en
+ /d14.io * c0_mem_en
+ /idst2 * c0_mem_en
+ /idst1 * c0_mem_en
+ idst0 * c0_mem_en
c0_mem_en.aclk = /b8sel
c0_mem_en.rstf = /sys_rst
c0_mem_en.trst = gnd
; register hdd_dis (st = 3)
hdd_dis.d := /rd_wr * d14.io * /idst2 * idst1 * idst0 * /con_dis * d15.io
+ rd_wr * hdd_dis
+ con_dis * hdd_dis
+ /d14.io * hdd_dis
+ idst2 * hdd_dis
+ /idst1 * hdd_dis
+ /idst0 * hdd_dis
hdd_dis.aclk = /b8sel
hdd_dis.rstf = /sys_rst
hdd_dis.trst = gnd
; register mem_dis (st = 4)
mem_dis.d := /rd_wr * d14.io * idst2 * /idst1 * /idst0 * /con_dis * d15.io
+ rd_wr * mem_dis
+ con_dis * mem_dis
+ /d14.io * mem_dis
+ /idst2 * mem_dis
+ idst1 * mem_dis
+ idst0 * mem_dis
mem_dis.aclk = /b8sel
mem_dis.rstf = /sys_rst
mem_dis.trst = gnd
; register id_dis (st = 2)
id_dis.d := /rd_wr * d14.io * /idst2 * idst1 * /idst0 * /con_dis * d15.io
+ rd_wr * id_dis
+ con_dis * id_dis
+ /d14.io * id_dis
+ idst2 * id_dis
+ /idst1 * id_dis
+ idst0 * id_dis
id_dis.aclk = /b8sel
id_dis.rstf = /sys_rst
id_dis.trst = gnd
; register con_dis (st = 1)
con_dis.d := /rd_wr * d14.io * /idst2 * /idst1 * idst0 * /con_dis * d15.io
+ rd_wr * con_dis
+ con_dis * con_dis
+ /d14.io * con_dis
+ idst2 * con_dis
+ idst1 * con_dis
+ /idst0 * con_dis
con_dis.aclk = /b8sel
con_dis.rstf = /sys_rst
con_dis.trst = gnd
SIMULATION
; *********************************************************************
trace_on
sys_rst reset cpuclk cdac as uds lds rd_wr rst_x
idst2 idst1 idst0 b8sel d15p d15.fb d15.io d15_oe d14.fb d14.io
regclk casreg rasreg rascpu adr_sw cascpu
ras1 ras0 cas3 cas2 cas1 cas0
f8_wr_en con_dis id_dis hdd_dis mem_dis c0_mem_en f8_mem_en
ovr dtack rom_oe
ior iow cs0 cs1 irq int2 da9sel
da8000 da9000_r da9000 daa000
a23 a22 a21 a20 a19 a18 a17 a16
a15 a14 a13 a12 a3
setf as uds lds rd_wr reset sys_rst
/a23 /a22 /a21 /a20 /a19 /a18 /a17 /a16
/a15 /a14 /a13 /a12 /a3
/d14.io /d15.io /regclk /irq int2
prldf idst[0:2] /da8000 /da9000 daa000 /casreg /rasreg /rascpu /cascpu
/f8_wr_en /con_dis /id_dis /hdd_dis /mem_dis /c0_mem_en /f8_mem_en
/rst_x
setf /sys_rst /reset ; activate reset
setf cpuclk
setf cdac
setf /cpuclk
setf /cdac
setf sys_rst reset
; b8 write d14.io=1 d15.io=1
setf cpuclk ; 0 cycle
setf /rd_wr a23 /a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: set f8_wr_en to 1
; b8 write d14.io=1 d15.io=0
setf cpuclk ; 0 cycle
setf /rd_wr a23 /a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io /d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: set f8_wr_en to 0
; de read a3=1
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 a20 a19 a18 a17 /a16 a3
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; no result (a3=1)
; f8 read
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; de write a3=1
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 a20 a19 a18 a17 /a16 a3
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; no result (a3=1)
; de write a3=0
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 a20 a19 a18 a17 /a16 /a3
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: jump to idst "001" state
; b8 write d14.io=1 d15.io=0
setf cpuclk ; 0 cycle
setf /rd_wr a23 /a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ; /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io /d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: set con_dis to 0
; de read a3=1
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 a20 a19 a18 a17 /a16 a3
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; no result (read)
; de write a3=1
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 a20 a19 a18 a17 /a16 a3
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: jump to idst "010" state
; b8 write d14.io=1 d15.io=1
setf cpuclk ; 0 cycle
setf /rd_wr a23 /a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ; /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: set id_dis to 1
; read id_dis
; b8 read
setf cpuclk ; 0 cycle
setf rd_wr a23 /a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; b8 write d14.io=1 d15.io=0
setf cpuclk ; 0 cycle
setf /rd_wr a23 /a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ; /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io /d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: set id_dis to 0
; read id_dis
; b8 read
setf cpuclk ; 0 cycle
setf rd_wr a23 /a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; de read a3=1
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 a20 a19 a18 a17 /a16 a3
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: jump to idst "011" state
; b8 write d14.io=1 d15.io=0
setf cpuclk ; 0 cycle
setf /rd_wr a23 /a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ; /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io /d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: set hdd_dis to 0
; de read a3=1
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 a20 a19 a18 a17 /a16 a3
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: jump to idst "100" state
; b8 write d14.io=1 d15.io=0
setf cpuclk ; 0 cycle
setf /rd_wr a23 /a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ; /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io /d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: set mem_dis to 0
; de read a3=1
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 a20 a19 a18 a17 /a16 a3
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: jump to idst "101" state
; de read a3=1
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 a20 a19 a18 a17 /a16 a3
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; no result (read)
; de write a3=1
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 a20 a19 a18 a17 /a16 a3
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: jump to idst "010" state
; b8 write d14.io=1 d15.io=1
setf cpuclk ; 0 cycle
setf /rd_wr a23 /a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ; /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: set id_dis to 1
; de read a3=1
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 a20 a19 a18 a17 /a16 a3
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: jump to idst "110" state
; b8 write d14.io=1 d15.io=1
setf cpuclk ; 0 cycle
setf /rd_wr a23 /a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ; /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: set c0_mem_en to 1
; de read a3=1
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 a20 a19 a18 a17 /a16 a3
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: jump to idst "111" state
; b8 write d14.io=1 d15.io=0
setf cpuclk ; 0 cycle
setf /rd_wr a23 /a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ; /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io /d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: set f8_mem_en to 0
; de read a3=1
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 a20 a19 a18 a17 /a16 a3
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: jump to idst "000" state
; b8 write d14.io=1 d15.io=0
setf cpuclk ; 0 cycle
setf /rd_wr a23 /a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ; /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io /d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: set f8_wr_en to 0
; de write a3=0
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 a20 a19 a18 a17 /a16 /a3
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: jump to idst "001" state
; de write a3=1
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 a20 a19 a18 a17 /a16 a3
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: jump to idst "001" state
; b8 write d14.io=1 d15.io=0
setf cpuclk ; 0 cycle
setf /rd_wr a23 /a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io /d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; result: set id_dis to 0
;--------------------------------------------------------------------
; simulation memory part
; write 20xxxx
setf cpuclk ; 0 cycle
setf /rd_wr /a23 /a22 a21 /a20 /a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
; regeneration counter set last bit to 1
setf regclk
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read 20xxxx
setf cpuclk ; 0 cycle
setf rd_wr /a23 /a22 a21 /a20 /a19 /a18 /a17 /a16
setf /regclk ; from casreg (counter reset)=1 ~50ns after cdac ~~|__
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; write 20xxxx uds=0 lds=1
setf cpuclk ; 0 cycle
setf /rd_wr /a23 /a22 a21 /a20 /a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds ;/lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read 20xxxx uds=1 lds=0
setf cpuclk ; 0 cycle
setf rd_wr /a23 /a22 a21 /a20 /a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /lds ;/uds
setf cdac
setf /cpuclk ; 3 cycle
setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; write 40xxxx
setf cpuclk ; 0 cycle
setf /rd_wr /a23 a22 /a21 /a20 /a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read 40xxxx
setf cpuclk ; 0 cycle
setf rd_wr /a23 a22 /a21 /a20 /a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; write 60xxxx
setf cpuclk ; 0 cycle
setf /rd_wr /a23 a22 a21 /a20 /a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read 60xxxx
setf cpuclk ; 0 cycle
setf rd_wr /a23 a22 a21 /a20 /a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; write 80xxxx
setf cpuclk ; 0 cycle
setf /rd_wr a23 /a22 /a21 /a20 /a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read 80xxxx
setf cpuclk ; 0 cycle
setf rd_wr a23 /a22 /a21 /a20 /a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; write 88xxxx
setf cpuclk ; 0 cycle
setf /rd_wr a23 /a22 /a21 /a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read 88xxxx
setf cpuclk ; 0 cycle
setf rd_wr a23 /a22 /a21 /a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; write 90xxxx
setf cpuclk ; 0 cycle
setf /rd_wr a23 /a22 /a21 a20 /a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read 90xxxx
setf cpuclk ; 0 cycle
setf rd_wr a23 /a22 /a21 a20 /a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; write 98xxxx
setf cpuclk ; 0 cycle
setf /rd_wr a23 /a22 /a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read 98xxxx
setf cpuclk ; 0 cycle
setf rd_wr a23 /a22 /a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; write c0xxxx
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 /a20 /a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read c0xxxx
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 /a20 /a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; write c8xxxx
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 /a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read c8xxxx
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 /a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; write d0xxxx
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 a20 /a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read d0xxxx
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 a20 /a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read d8xxxx (not ram) (for check)
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; write f8xxxx
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read f8xxxx
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 a21 a20 a19 /a18 /a17 /a16
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d14.io d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
;--------------------------------------------------------------------
; ide part simulation
; write da8xxx d15.io=1
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 a20 a19 /a18 a17 /a16 a15 /a14 /a13 /a12
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf d15.io
setf as uds lds
setf /cdac
; write da8xxx d15.io=0
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 a20 a19 /a18 a17 /a16 a15 /a14 /a13 /a12
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf /d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf /d15.io
setf as uds lds
setf /cdac
; set ide interrupt request
setf irq
; write da9xxx d15.io=1
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 a20 a19 /a18 a17 /a16 a15 /a14 /a13 a12
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; write da9xxx d15.io=0
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 a20 a19 /a18 a17 /a16 a15 /a14 /a13 a12
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf /d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; write daaxxx d15.io=0 da9000->int2 disabled
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 a20 a19 /a18 a17 /a16 a15 /a14 a13 /a12
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf /d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; write daaxxx d15.io=1 da9000->int2 enabled
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 a20 a19 /a18 a17 /a16 a15 /a14 a13 /a12
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
setf d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read da8xxx
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 a20 a19 /a18 a17 /a16 a15 /a14 /a13 /a12
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read da9xxx
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 a20 a19 /a18 a17 /a16 a15 /a14 /a13 a12
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read daaxxx
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 a20 a19 /a18 a17 /a16 a15 /a14 a13 /a12
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; write da2xxx
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 a20 a19 /a18 a17 /a16 /a15 /a14 a13 /a12
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read da2xxx
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 a20 a19 /a18 a17 /a16 /a15 /a14 a13 /a12
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; write da3xxx
setf cpuclk ; 0 cycle
setf /rd_wr a23 a22 /a21 a20 a19 /a18 a17 /a16 /a15 /a14 a13 a12
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as ;/uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d15.io
setf /cdac
setf cpuclk ; 4 cycle
setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; read da3xxx
setf cpuclk ; 0 cycle
setf rd_wr a23 a22 /a21 a20 a19 /a18 a17 /a16 /a15 /a14 a13 a12
setf cdac
setf /cpuclk ; 1 cycle
setf /cdac
setf cpuclk ; 2 cycle
setf /as /uds /lds
setf cdac
setf /cpuclk ; 3 cycle
; setf d15.io
setf /cdac
setf cpuclk ; 4 cycle
; setf /uds /lds
setf cdac
setf /cpuclk ; 5 cycle
setf /cdac
setf cpuclk ; 6 cycle
setf cdac
setf /cpuclk ; 7 cycle
setf as uds lds
setf /cdac
; reset ide interrupt request
setf /irq
setf cpuclk
setf cdac
setf /cpuclk
setf /cdac
trace_off